package com.lam.generator.service;

import java.util.List;
import java.util.Map;

import com.lam.generator.entity.GenTable;
import com.lam.generator.param.GenTableParam;

/**
 * 代码生成Service接口
 * 
 * @author admin
 * @date 2022-09-26
 */
public interface GenTableService {

    /**
     * 查询代码生成
     * 
     * @param id 代码生成ID
     * @return 单个对象
     */
    public GenTable selectById(String id);

    /**
     * 查询代码生成列表
     * 
     * @param param 
     * @return 列表集合
     */
    public List<GenTable> selectList(GenTableParam param);

    /**
	 * 导入表结构
	 * @param tableNames 导入表列表
	 */
	public void importGenTable(String tableNames);
	
	/**
	 * 从数据库同步表结构
	 * 
	 * @param table
	 */
	public void syncFromDb(String tableId);
	
    /**
     * 修改代码生成
     * 
     * @param genTable 
     * @return 
     */
    public int update(GenTable genTable);

    /**
     * 删除代码生成信息
     * 
     * @param id ID
     * @return 
     */
    public int deleteById(String tableIds);
	
	/**
	 * 预览代码
	 * 
	 * @param tableId 表编号
	 * @return 预览数据列表
	 */
	public Map<String, String> previewCode(String tableId);

	/**
	 * 生成代码（下载方式）
	 * 
	 * @param tableIds 表id
	 * @return 数据
	 */
	public byte[] downloadCode(String tableIds);

	/**
	 * 生成代码（自定义路径）
	 * 
	 * @param tableId 表id
	 * @return 数据
	 */
	public int generatorCode2Project(String tableId);

}
